#ifndef ___fat32_operacionBD_determinar_primera_entrada_eliminacion

#define ___fat32_operacionBD_determinar_primera_entrada_eliminacion 1

#include "f32_mto.c"

struct fat32opBD_datos_eliminacion {
  char * bufferDirectorio;
  unsigned char numeroEntradaBase;
};

unsigned char fat32op_determinar_primera_entrada_eliminacion(FAT32_PARAMS_OPERACION);

unsigned char fat32op_determinar_primera_entrada_eliminacion (FAT32_PARAMS_OPERACION) {
  struct fat32opBD_datos_eliminacion * datos = datosEntrada;
  unsigned char posicionActual;
  unsigned char checksum = 0;
  for (posicionActual = 0; posicionActual < 11; posicionActual ++) {
    checksum = ((checksum & 1) * 128) + (checksum / 2);
    checksum += (datos -> bufferDirectorio)[((datos -> numeroEntradaBase) * 32) + posicionActual];
  }
  for (posicionActual = ((datos -> numeroEntradaBase) - 1); posicionActual; posicionActual --) {
    if ((datos -> bufferDirectorio)[posicionActual * 32] == 229) break;
    if (((datos -> bufferDirectorio)[posicionActual * 32 + 11] & 63) != 15) break;
    if ((datos -> bufferDirectorio)[posicionActual * 32 + 13] != checksum) break;
  }
  if (!posicionActual) posicionActual = (datos -> numeroEntradaBase) - 1;
  posicionActual += 2;
  return posicionActual;
}

#endif